<!DOCTYPE html>
            
<HTML>
<HEAD>
<meta name="booktitle" content="Developing Applications With Objective Caml" >
 <meta charset="ISO-8859-1"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<META name="GENERATOR" content="hevea 1.05-7 of 2000-02-24">
<META NAME="Author" CONTENT="Christian.Queinnec@lip6.fr">
<LINK rel=stylesheet type="text/css" href="videoc-ocda.css">
<script language="JavaScript" src="videoc.js"><!--
//--></script>
<TITLE>
 Plan of the Chapter
</TITLE>
</HEAD>
<BODY class="regularBody">
<A HREF="book-ora035.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="index.html"><IMG SRC ="contents_motif.gif" ALT="Contents"></A>
<A HREF="book-ora037.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
<HR>

<H2>Plan of the Chapter</H2>This chapter provides a comparison between the functional and
imperative models in the Objective CAML language, at the level both of
control structure and of the memory representation of values. The
mixture of these two styles allows new data structures to be created.
The first section studies this comparison by example. The second
section discusses the ingredients in the choice between composition of
functions and sequencing of instructions, and in the choice between
sharing and copying values. The third section brings out the interest of mixing these two styles to create mutable functional data, thus permitting data to be constructed without being
completely evaluated. The fourth section describes <EM>streams</EM>,
potentially infinite sequences of data, and their integration into the language via pattern-matching.
<BR>
<BR>
<HR>
<A HREF="book-ora035.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="index.html"><IMG SRC ="contents_motif.gif" ALT="Contents"></A>
<A HREF="book-ora037.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
</BODY>
</HTML>
